const jwt = require('jsonwebtoken')

const auth = (req, res, next) => {
  // 1. 从请求头中取出 token
  const token = req.get('ACCESS_TOKEN')
  if (!token) {
    res.status(401).send({
      msg: '需要传递 jwt'
    })
    return
  }

  // 2. token 存在，需要校验 token 的有效性
  try {
    const payload = jwt.verify(token, 'MYGOD')
    // 给 req 身上添加 userInfo 字段
    req.userInfo = payload
    // 下一步
    next()
  } catch (error) {
    res.status(401).send({
      msg: 'invalid token'
    })
  }
}

module.exports = auth
